package double_pointer;

/**
 * @Description 283. 移动零 https://leetcode.cn/problems/move-zeroes/
 * @Author Firenut
 * @Date 2023-02-10 22:57
 */
public class T283_moveZeroes {
    public void moveZeroes(int[] nums) {
        // j移动到一个非0的位置，然后将元素覆盖到i所在位置
        int i,j;
        i=j=0;
        while(j<nums.length){
            if(nums[j]!=0){
                //只有发生覆盖的时候，才将i++
                nums[i++]=nums[j++];
            }else{
                j++;
            }
        }

        // 后面直接覆盖0即可
        for(int k=i;k<nums.length;k++){
            //需要覆盖0的个数: nums.length-i
            nums[k]=0;
        }
    }
}
